/*============================================================================
  File:      IDMAlgorithmMetadata.StaticStubs.h
 
  Summary:   Static IDMAlgorithmMetadata declarations to paste into header file
			 for class implementing your algorithm

  Date:		 September 12, 2003
------------------------------------------------------------------------------
  This file is part of the Microsoft SQL Server Code Samples.
 
  Copyright (C) 2003 Microsoft Corporation.  All rights reserved.
 
This source code is intended only as a supplement to Microsoft
Development Tools and/or on-line documentation.  See these other
materials for detailed information regarding Microsoft code samples.
 
THIS CODE AND INFORMATION ARE PROVIDED "AS IS" WITHOUT WARRANTY OF ANY
KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
PARTICULAR PURPOSE.
============================================================================*/


// IDMAlgorithmMetadata
	
    static HRESULT GetServiceType( 
        /* [in]  */	IDMContextServices* in_pContext,
		/* [out] */ ULONG *out_pServiceTypeID);
    
    static HRESULT GetServiceName( 
		/* [in]  */	IDMContextServices* in_pContext,
        /* [out] */ DMString *io_pstrServiceName);
    
    static HRESULT GetDisplayName( 
		/* [in]  */	IDMContextServices* in_pContext,
        /* [out] */ DMString *io_pstrDisplayName);
    
    static HRESULT GetServiceGuid( 
		/* [in]  */	IDMContextServices* in_pContext,    
		/* [out] */ GUID *out_pguidServiceGUID);
    
    static HRESULT GetDescription( 
		/* [in]  */	IDMContextServices* in_pContext,
        /* [out] */ DMString *io_pstrDescription);
    
    static HRESULT GetPredictionLimit( 
		/* [in]  */	IDMContextServices* in_pContext,
        /* [out] */ LONG *out_pPredictionLimit);
    
    static HRESULT GetSupDistributionFlags( 
		/* [in]  */	IDMContextServices* in_pContext,
        /* [out] */ ULONG **out_prgFlags,
        /* [out] */ ULONG *out_cFlags);
    
    static HRESULT GetSupInputContentTypes( 
		/* [in]  */	IDMContextServices* in_pContext,
        /* [out] */ ULONG **out_prgTypes,
        /* [out] */ ULONG *out_cTypes);
    
    static HRESULT GetSupPredictContentTypes( 
		/* [in]  */	IDMContextServices* in_pContext,
        /* [out] */ ULONG **out_prgTypes,
        /* [out] */ ULONG *out_cTypes);
    
    static HRESULT GetSupModelingFlags( 
		/* [in]  */	IDMContextServices* in_pContext,
        /* [out] */ DM_MODELING_FLAG **out_prgFlags,
        /* [out] */ ULONG *out_pcFlags);
    
    static HRESULT GetModelingFlagName( 
		/* [in]  */	IDMContextServices* in_pContext,
        /* [in]  */ DM_MODELING_FLAG in_Flag,
        /* [out] */ DMString *io_pstrFlagName);
    
    static HRESULT GetTrainingComplexity( 
		/* [in]  */	IDMContextServices* in_pContext,
        /* [out] */ LONG *out_pTrainingComplexity);
    
    static HRESULT GetPredictionComplexity( 
		/* [in]  */	IDMContextServices* in_pContext,
        /* [out] */ LONG *out_pPredictionComplexity);
    
    static HRESULT GetExpectedQuality( 
		/* [in]  */	IDMContextServices* in_pContext,
        /* [out] */ LONG *out_pExpectedQuality);
    
    static HRESULT GetScaling( 
		/* [in]  */	IDMContextServices* in_pContext,
        /* [out] */ LONG *out_pScaling);
    
    static HRESULT GetAllowIncrementalInsert( 
		/* [in]  */	IDMContextServices* in_pContext,
        /* [out] */ BOOL *out_pfIncrementalInsert);
   
    static HRESULT GetAllowDuplicateKey( 
		/* [in]  */	IDMContextServices* in_pContext,
        /* [out] */ BOOL *out_pfDuplicateKey);
    
    static HRESULT GetControl( 
		/* [in]  */	IDMContextServices* in_pContext,
        /* [out] */ LONG *out_pControl);
    
    static HRESULT GetViewerType( 
		/* [in]  */	IDMContextServices* in_pContext,
        /* [out] */ DMString *io_pstrViewerType);
    
    static HRESULT GetSupportsDMDimensions( 
		/* [in]  */	IDMContextServices* in_pContext,
        /* [out] */ BOOL *out_pfSupportsDMDimensions);
    
    static HRESULT GetSupportsDrillthrough( 
		/* [in]  */	IDMContextServices* in_pContext,
        /* [out] */ BOOL *out_pfSupportsDrillthrough,
		/* [out] */ BOOL *out_pfMustIncludeChildren);

    static HRESULT GetSupportedFunctions( 
        /* [in] */ IDMContextServices *in_pContext,
        /* [out] */ DM_SUPPORTED_FUNCTION **out_prgFuncs,
        /* [out] */ ULONG *out_cFuncs);
    
    static HRESULT GetNumParameters( 
		/* [in]  */	IDMContextServices* in_pContext,
        /* [out] */ ULONG *out_pcParameters);
    
    static HRESULT GetParameterName( 
		/* [in]  */	IDMContextServices* in_pContext,
        /* [in] */ ULONG in_iParameter,
        /* [out] */ DMString *io_pstrParameterName);
    
    static HRESULT GetParameterType( 
		/* [in]  */	IDMContextServices* in_pContext,
        /* [in] */ ULONG in_iParameter,
        /* [out] */ DMString *io_pstrParameterType);
    
    static HRESULT GetParameterIsRequired( 
		/* [in]  */	IDMContextServices* in_pContext,
        /* [in] */ ULONG in_iParameter,
        /* [out] */ BOOL *out_pfIsRequired);

    static HRESULT GetParameterIsExposed( 
		/* [in]  */	IDMContextServices* in_pContext,
        /* [in] */ ULONG in_iParameter,
        /* [out] */ BOOL *out_pfIsExposed);
    
    static HRESULT GetParameterFlags( 
		/* [in]  */	IDMContextServices* in_pContext,
        /* [in] */ ULONG in_iParameter,
        /* [out] */ ULONG *out_pulParameterFlags);
    
    static HRESULT GetParameterDescription( 
		/* [in]  */	IDMContextServices* in_pContext,
        /* [in] */ ULONG in_iParameter,
        /* [in] */ ULONG in_LocaleID,
        /* [out] */ DMString *io_pstrDescription);
    
    static HRESULT GetParameterDefaultValue( 
		/* [in]  */	IDMContextServices* in_pContext,
        /* [in] */ ULONG in_iParameter,
        /* [out] */ DMString *io_pstrDefaultValue);
    
    static HRESULT GetParameterValueEnumeration( 
		/* [in]  */	IDMContextServices* in_pContext,
        /* [in] */ ULONG in_iParameter,
        /* [out] */ DMString *io_pstrValueEnumeration);
    
    static HRESULT ParseParameterValue( 
		/* [in]  */	IDMContextServices* in_pContext,
        /* [in] */ ULONG in_iParameter,
        /* [in] */ DMString *in_pstrParameterStrValue,
        /* [in] */ DMVariantPtr io_pParameterMappedValue);
    
    static HRESULT GetMarginalRequirements( 
		/* [in]  */	IDMContextServices* in_pContext,
        /* [out] */ DMMarginalRequirements *out_pReq);
    
	static HRESULT GetCaseIDModelled( 
		/* [in] */ IDMContextServices *in_pContext,
		/* [out] */ BOOL *out_pfIsModelled);

    static HRESULT ValidateAttributeSet( 
		/* [in]  */	IDMContextServices* in_pContext,
        /* [in] */ IDMAttributeSet *in_pAttributeSet);
        